﻿using System;

namespace Zo.Events.Core
{
    /// <summary>
    /// 事件消息。
    /// </summary>
    internal class EventEnvelope
    {
        /// <summary>
        /// 初始化。
        /// </summary>
        public EventEnvelope()
        {
            Id = Guid.NewGuid();
        }

        /// <summary>
        /// 唯一标识。
        /// </summary>
        public Guid Id { get; private set; }

        /// <summary>
        /// 消息。
        /// </summary>
        public object Message { get; set; }

        /// <summary>
        /// 消息类型。
        /// </summary>
        public EnvelopeType Type { get; set; }
    }

    /// <summary>
    /// 消息类型。
    /// </summary>
    internal enum EnvelopeType
    {
        /// <summary>
        /// 无返回消息。
        /// </summary>
        None = 0,

        /// <summary>
        /// 有返回消息。
        /// </summary>
        Return = 1
    }
}